package com.clstu.jdbcs.result;

import java.io.FileInputStream;
import java.io.IOException;
import java.sql.*;
import java.util.Properties;

/**
 * ResultSet结果集的使用
 */
public class ResultSet_ {
    public static void main(String[] args) throws SQLException, ClassNotFoundException, IOException {
        Properties properties = new Properties();
        properties.load(new FileInputStream("src\\mysql.properties"));
        String user = properties.getProperty("user");
        String password = properties.getProperty("password");
        String url = properties.getProperty("url");
        String driver = properties.getProperty("driver");
        Class.forName(driver);
        Connection connect = DriverManager.getConnection(url, user, password);
        //3.执行sql
        String sql = "select id,name,sex,birthday from actor";//写好sql语句
        Statement statement = connect.createStatement();//生成一个类似于传话人的对象,用户传递sql语句
        /*
          需要注意的是 Statement是一个接口,但是他不安全,不能防止sql注入,!!!!,为了防止sql注入,现在已经弃用了,用PreparedStatement代替
         */
        ResultSet resultSet = statement.executeQuery(sql);//传话人传话后返回单个的结果集合(resultSet)
        //使用while循环来从resultSet中拿到数据
        while (resultSet.next()){//第一次执行next()后resultSet指向的才是第一条记录,开始resultSet是没有指向任何记录的
            System.out.println(resultSet.getInt(1)+"\t"+resultSet.getString(2)+"\t"+
                    resultSet.getString(3)+"\t"+resultSet.getDate(4));
        }
        //4.关闭连接,释放资源
        resultSet.close();//resultSet也是需要关闭的
        statement.close();
        connect.close();
    }
}
